/*
 * XML Type:  PaymentInfo
 * Namespace: http://ofx.net/types/2003/04
 * Java type: net.ofx.types.x2003.x04.PaymentInfo
 *
 * Automatically generated - do not modify.
 */
package net.ofx.types.x2003.x04.impl;
/**
 * An XML PaymentInfo(@http://ofx.net/types/2003/04).
 *
 * This is a complex type.
 */
public class PaymentInfoImpl extends org.apache.xmlbeans.impl.values.XmlComplexContentImpl implements net.ofx.types.x2003.x04.PaymentInfo
{
    
    public PaymentInfoImpl(org.apache.xmlbeans.SchemaType sType)
    {
        super(sType);
    }
    
    private static final javax.xml.namespace.QName BANKACCTFROM$0 = 
        new javax.xml.namespace.QName("", "BANKACCTFROM");
    private static final javax.xml.namespace.QName TRNAMT$2 = 
        new javax.xml.namespace.QName("", "TRNAMT");
    private static final javax.xml.namespace.QName PAYEEID$4 = 
        new javax.xml.namespace.QName("", "PAYEEID");
    private static final javax.xml.namespace.QName PAYEE$6 = 
        new javax.xml.namespace.QName("", "PAYEE");
    private static final javax.xml.namespace.QName PAYEELSTID$8 = 
        new javax.xml.namespace.QName("", "PAYEELSTID");
    private static final javax.xml.namespace.QName BANKACCTTO$10 = 
        new javax.xml.namespace.QName("", "BANKACCTTO");
    private static final javax.xml.namespace.QName EXTDPMT$12 = 
        new javax.xml.namespace.QName("", "EXTDPMT");
    private static final javax.xml.namespace.QName PAYACCT$14 = 
        new javax.xml.namespace.QName("", "PAYACCT");
    private static final javax.xml.namespace.QName DTDUE$16 = 
        new javax.xml.namespace.QName("", "DTDUE");
    private static final javax.xml.namespace.QName MEMO$18 = 
        new javax.xml.namespace.QName("", "MEMO");
    private static final javax.xml.namespace.QName BILLREFINFO$20 = 
        new javax.xml.namespace.QName("", "BILLREFINFO");
    private static final javax.xml.namespace.QName BILLPUBINFO$22 = 
        new javax.xml.namespace.QName("", "BILLPUBINFO");
    
    
    /**
     * Gets the "BANKACCTFROM" element
     */
    public net.ofx.types.x2003.x04.BankAccount getBANKACCTFROM()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BankAccount target = null;
            target = (net.ofx.types.x2003.x04.BankAccount)get_store().find_element_user(BANKACCTFROM$0, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * Sets the "BANKACCTFROM" element
     */
    public void setBANKACCTFROM(net.ofx.types.x2003.x04.BankAccount bankacctfrom)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BankAccount target = null;
            target = (net.ofx.types.x2003.x04.BankAccount)get_store().find_element_user(BANKACCTFROM$0, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.BankAccount)get_store().add_element_user(BANKACCTFROM$0);
            }
            target.set(bankacctfrom);
        }
    }
    
    /**
     * Appends and returns a new empty "BANKACCTFROM" element
     */
    public net.ofx.types.x2003.x04.BankAccount addNewBANKACCTFROM()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BankAccount target = null;
            target = (net.ofx.types.x2003.x04.BankAccount)get_store().add_element_user(BANKACCTFROM$0);
            return target;
        }
    }
    
    /**
     * Gets the "TRNAMT" element
     */
    public java.lang.String getTRNAMT()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(TRNAMT$2, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "TRNAMT" element
     */
    public net.ofx.types.x2003.x04.AmountType xgetTRNAMT()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.AmountType target = null;
            target = (net.ofx.types.x2003.x04.AmountType)get_store().find_element_user(TRNAMT$2, 0);
            return target;
        }
    }
    
    /**
     * Sets the "TRNAMT" element
     */
    public void setTRNAMT(java.lang.String trnamt)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(TRNAMT$2, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(TRNAMT$2);
            }
            target.setStringValue(trnamt);
        }
    }
    
    /**
     * Sets (as xml) the "TRNAMT" element
     */
    public void xsetTRNAMT(net.ofx.types.x2003.x04.AmountType trnamt)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.AmountType target = null;
            target = (net.ofx.types.x2003.x04.AmountType)get_store().find_element_user(TRNAMT$2, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.AmountType)get_store().add_element_user(TRNAMT$2);
            }
            target.set(trnamt);
        }
    }
    
    /**
     * Gets the "PAYEEID" element
     */
    public java.lang.String getPAYEEID()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(PAYEEID$4, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "PAYEEID" element
     */
    public net.ofx.types.x2003.x04.PayeeIdType xgetPAYEEID()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.PayeeIdType target = null;
            target = (net.ofx.types.x2003.x04.PayeeIdType)get_store().find_element_user(PAYEEID$4, 0);
            return target;
        }
    }
    
    /**
     * True if has "PAYEEID" element
     */
    public boolean isSetPAYEEID()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(PAYEEID$4) != 0;
        }
    }
    
    /**
     * Sets the "PAYEEID" element
     */
    public void setPAYEEID(java.lang.String payeeid)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(PAYEEID$4, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(PAYEEID$4);
            }
            target.setStringValue(payeeid);
        }
    }
    
    /**
     * Sets (as xml) the "PAYEEID" element
     */
    public void xsetPAYEEID(net.ofx.types.x2003.x04.PayeeIdType payeeid)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.PayeeIdType target = null;
            target = (net.ofx.types.x2003.x04.PayeeIdType)get_store().find_element_user(PAYEEID$4, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.PayeeIdType)get_store().add_element_user(PAYEEID$4);
            }
            target.set(payeeid);
        }
    }
    
    /**
     * Unsets the "PAYEEID" element
     */
    public void unsetPAYEEID()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(PAYEEID$4, 0);
        }
    }
    
    /**
     * Gets the "PAYEE" element
     */
    public net.ofx.types.x2003.x04.Payee getPAYEE()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.Payee target = null;
            target = (net.ofx.types.x2003.x04.Payee)get_store().find_element_user(PAYEE$6, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "PAYEE" element
     */
    public boolean isSetPAYEE()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(PAYEE$6) != 0;
        }
    }
    
    /**
     * Sets the "PAYEE" element
     */
    public void setPAYEE(net.ofx.types.x2003.x04.Payee payee)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.Payee target = null;
            target = (net.ofx.types.x2003.x04.Payee)get_store().find_element_user(PAYEE$6, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.Payee)get_store().add_element_user(PAYEE$6);
            }
            target.set(payee);
        }
    }
    
    /**
     * Appends and returns a new empty "PAYEE" element
     */
    public net.ofx.types.x2003.x04.Payee addNewPAYEE()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.Payee target = null;
            target = (net.ofx.types.x2003.x04.Payee)get_store().add_element_user(PAYEE$6);
            return target;
        }
    }
    
    /**
     * Unsets the "PAYEE" element
     */
    public void unsetPAYEE()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(PAYEE$6, 0);
        }
    }
    
    /**
     * Gets the "PAYEELSTID" element
     */
    public java.lang.String getPAYEELSTID()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(PAYEELSTID$8, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "PAYEELSTID" element
     */
    public net.ofx.types.x2003.x04.PayeeIdType xgetPAYEELSTID()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.PayeeIdType target = null;
            target = (net.ofx.types.x2003.x04.PayeeIdType)get_store().find_element_user(PAYEELSTID$8, 0);
            return target;
        }
    }
    
    /**
     * True if has "PAYEELSTID" element
     */
    public boolean isSetPAYEELSTID()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(PAYEELSTID$8) != 0;
        }
    }
    
    /**
     * Sets the "PAYEELSTID" element
     */
    public void setPAYEELSTID(java.lang.String payeelstid)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(PAYEELSTID$8, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(PAYEELSTID$8);
            }
            target.setStringValue(payeelstid);
        }
    }
    
    /**
     * Sets (as xml) the "PAYEELSTID" element
     */
    public void xsetPAYEELSTID(net.ofx.types.x2003.x04.PayeeIdType payeelstid)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.PayeeIdType target = null;
            target = (net.ofx.types.x2003.x04.PayeeIdType)get_store().find_element_user(PAYEELSTID$8, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.PayeeIdType)get_store().add_element_user(PAYEELSTID$8);
            }
            target.set(payeelstid);
        }
    }
    
    /**
     * Unsets the "PAYEELSTID" element
     */
    public void unsetPAYEELSTID()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(PAYEELSTID$8, 0);
        }
    }
    
    /**
     * Gets the "BANKACCTTO" element
     */
    public net.ofx.types.x2003.x04.BankAccount getBANKACCTTO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BankAccount target = null;
            target = (net.ofx.types.x2003.x04.BankAccount)get_store().find_element_user(BANKACCTTO$10, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "BANKACCTTO" element
     */
    public boolean isSetBANKACCTTO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(BANKACCTTO$10) != 0;
        }
    }
    
    /**
     * Sets the "BANKACCTTO" element
     */
    public void setBANKACCTTO(net.ofx.types.x2003.x04.BankAccount bankacctto)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BankAccount target = null;
            target = (net.ofx.types.x2003.x04.BankAccount)get_store().find_element_user(BANKACCTTO$10, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.BankAccount)get_store().add_element_user(BANKACCTTO$10);
            }
            target.set(bankacctto);
        }
    }
    
    /**
     * Appends and returns a new empty "BANKACCTTO" element
     */
    public net.ofx.types.x2003.x04.BankAccount addNewBANKACCTTO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BankAccount target = null;
            target = (net.ofx.types.x2003.x04.BankAccount)get_store().add_element_user(BANKACCTTO$10);
            return target;
        }
    }
    
    /**
     * Unsets the "BANKACCTTO" element
     */
    public void unsetBANKACCTTO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(BANKACCTTO$10, 0);
        }
    }
    
    /**
     * Gets array of all "EXTDPMT" elements
     */
    public net.ofx.types.x2003.x04.ExtendedPayment[] getEXTDPMTArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            java.util.List targetList = new java.util.ArrayList();
            get_store().find_all_element_users(EXTDPMT$12, targetList);
            net.ofx.types.x2003.x04.ExtendedPayment[] result = new net.ofx.types.x2003.x04.ExtendedPayment[targetList.size()];
            targetList.toArray(result);
            return result;
        }
    }
    
    /**
     * Gets ith "EXTDPMT" element
     */
    public net.ofx.types.x2003.x04.ExtendedPayment getEXTDPMTArray(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.ExtendedPayment target = null;
            target = (net.ofx.types.x2003.x04.ExtendedPayment)get_store().find_element_user(EXTDPMT$12, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            return target;
        }
    }
    
    /**
     * Returns number of "EXTDPMT" element
     */
    public int sizeOfEXTDPMTArray()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(EXTDPMT$12);
        }
    }
    
    /**
     * Sets array of all "EXTDPMT" element
     */
    public void setEXTDPMTArray(net.ofx.types.x2003.x04.ExtendedPayment[] extdpmtArray)
    {
        synchronized (monitor())
        {
            check_orphaned();
            arraySetterHelper(extdpmtArray, EXTDPMT$12);
        }
    }
    
    /**
     * Sets ith "EXTDPMT" element
     */
    public void setEXTDPMTArray(int i, net.ofx.types.x2003.x04.ExtendedPayment extdpmt)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.ExtendedPayment target = null;
            target = (net.ofx.types.x2003.x04.ExtendedPayment)get_store().find_element_user(EXTDPMT$12, i);
            if (target == null)
            {
                throw new IndexOutOfBoundsException();
            }
            target.set(extdpmt);
        }
    }
    
    /**
     * Inserts and returns a new empty value (as xml) as the ith "EXTDPMT" element
     */
    public net.ofx.types.x2003.x04.ExtendedPayment insertNewEXTDPMT(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.ExtendedPayment target = null;
            target = (net.ofx.types.x2003.x04.ExtendedPayment)get_store().insert_element_user(EXTDPMT$12, i);
            return target;
        }
    }
    
    /**
     * Appends and returns a new empty value (as xml) as the last "EXTDPMT" element
     */
    public net.ofx.types.x2003.x04.ExtendedPayment addNewEXTDPMT()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.ExtendedPayment target = null;
            target = (net.ofx.types.x2003.x04.ExtendedPayment)get_store().add_element_user(EXTDPMT$12);
            return target;
        }
    }
    
    /**
     * Removes the ith "EXTDPMT" element
     */
    public void removeEXTDPMT(int i)
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(EXTDPMT$12, i);
        }
    }
    
    /**
     * Gets the "PAYACCT" element
     */
    public java.lang.String getPAYACCT()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(PAYACCT$14, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "PAYACCT" element
     */
    public net.ofx.types.x2003.x04.IdType xgetPAYACCT()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.IdType target = null;
            target = (net.ofx.types.x2003.x04.IdType)get_store().find_element_user(PAYACCT$14, 0);
            return target;
        }
    }
    
    /**
     * Sets the "PAYACCT" element
     */
    public void setPAYACCT(java.lang.String payacct)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(PAYACCT$14, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(PAYACCT$14);
            }
            target.setStringValue(payacct);
        }
    }
    
    /**
     * Sets (as xml) the "PAYACCT" element
     */
    public void xsetPAYACCT(net.ofx.types.x2003.x04.IdType payacct)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.IdType target = null;
            target = (net.ofx.types.x2003.x04.IdType)get_store().find_element_user(PAYACCT$14, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.IdType)get_store().add_element_user(PAYACCT$14);
            }
            target.set(payacct);
        }
    }
    
    /**
     * Gets the "DTDUE" element
     */
    public java.lang.String getDTDUE()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(DTDUE$16, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "DTDUE" element
     */
    public net.ofx.types.x2003.x04.DateTimeType xgetDTDUE()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.DateTimeType target = null;
            target = (net.ofx.types.x2003.x04.DateTimeType)get_store().find_element_user(DTDUE$16, 0);
            return target;
        }
    }
    
    /**
     * Sets the "DTDUE" element
     */
    public void setDTDUE(java.lang.String dtdue)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(DTDUE$16, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(DTDUE$16);
            }
            target.setStringValue(dtdue);
        }
    }
    
    /**
     * Sets (as xml) the "DTDUE" element
     */
    public void xsetDTDUE(net.ofx.types.x2003.x04.DateTimeType dtdue)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.DateTimeType target = null;
            target = (net.ofx.types.x2003.x04.DateTimeType)get_store().find_element_user(DTDUE$16, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.DateTimeType)get_store().add_element_user(DTDUE$16);
            }
            target.set(dtdue);
        }
    }
    
    /**
     * Gets the "MEMO" element
     */
    public java.lang.String getMEMO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(MEMO$18, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "MEMO" element
     */
    public net.ofx.types.x2003.x04.MessageType xgetMEMO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.MessageType target = null;
            target = (net.ofx.types.x2003.x04.MessageType)get_store().find_element_user(MEMO$18, 0);
            return target;
        }
    }
    
    /**
     * True if has "MEMO" element
     */
    public boolean isSetMEMO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(MEMO$18) != 0;
        }
    }
    
    /**
     * Sets the "MEMO" element
     */
    public void setMEMO(java.lang.String memo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(MEMO$18, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(MEMO$18);
            }
            target.setStringValue(memo);
        }
    }
    
    /**
     * Sets (as xml) the "MEMO" element
     */
    public void xsetMEMO(net.ofx.types.x2003.x04.MessageType memo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.MessageType target = null;
            target = (net.ofx.types.x2003.x04.MessageType)get_store().find_element_user(MEMO$18, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.MessageType)get_store().add_element_user(MEMO$18);
            }
            target.set(memo);
        }
    }
    
    /**
     * Unsets the "MEMO" element
     */
    public void unsetMEMO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(MEMO$18, 0);
        }
    }
    
    /**
     * Gets the "BILLREFINFO" element
     */
    public java.lang.String getBILLREFINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(BILLREFINFO$20, 0);
            if (target == null)
            {
                return null;
            }
            return target.getStringValue();
        }
    }
    
    /**
     * Gets (as xml) the "BILLREFINFO" element
     */
    public net.ofx.types.x2003.x04.BillRefInfoType xgetBILLREFINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BillRefInfoType target = null;
            target = (net.ofx.types.x2003.x04.BillRefInfoType)get_store().find_element_user(BILLREFINFO$20, 0);
            return target;
        }
    }
    
    /**
     * True if has "BILLREFINFO" element
     */
    public boolean isSetBILLREFINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(BILLREFINFO$20) != 0;
        }
    }
    
    /**
     * Sets the "BILLREFINFO" element
     */
    public void setBILLREFINFO(java.lang.String billrefinfo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            org.apache.xmlbeans.SimpleValue target = null;
            target = (org.apache.xmlbeans.SimpleValue)get_store().find_element_user(BILLREFINFO$20, 0);
            if (target == null)
            {
                target = (org.apache.xmlbeans.SimpleValue)get_store().add_element_user(BILLREFINFO$20);
            }
            target.setStringValue(billrefinfo);
        }
    }
    
    /**
     * Sets (as xml) the "BILLREFINFO" element
     */
    public void xsetBILLREFINFO(net.ofx.types.x2003.x04.BillRefInfoType billrefinfo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BillRefInfoType target = null;
            target = (net.ofx.types.x2003.x04.BillRefInfoType)get_store().find_element_user(BILLREFINFO$20, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.BillRefInfoType)get_store().add_element_user(BILLREFINFO$20);
            }
            target.set(billrefinfo);
        }
    }
    
    /**
     * Unsets the "BILLREFINFO" element
     */
    public void unsetBILLREFINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(BILLREFINFO$20, 0);
        }
    }
    
    /**
     * Gets the "BILLPUBINFO" element
     */
    public net.ofx.types.x2003.x04.BillPubInfo getBILLPUBINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BillPubInfo target = null;
            target = (net.ofx.types.x2003.x04.BillPubInfo)get_store().find_element_user(BILLPUBINFO$22, 0);
            if (target == null)
            {
                return null;
            }
            return target;
        }
    }
    
    /**
     * True if has "BILLPUBINFO" element
     */
    public boolean isSetBILLPUBINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            return get_store().count_elements(BILLPUBINFO$22) != 0;
        }
    }
    
    /**
     * Sets the "BILLPUBINFO" element
     */
    public void setBILLPUBINFO(net.ofx.types.x2003.x04.BillPubInfo billpubinfo)
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BillPubInfo target = null;
            target = (net.ofx.types.x2003.x04.BillPubInfo)get_store().find_element_user(BILLPUBINFO$22, 0);
            if (target == null)
            {
                target = (net.ofx.types.x2003.x04.BillPubInfo)get_store().add_element_user(BILLPUBINFO$22);
            }
            target.set(billpubinfo);
        }
    }
    
    /**
     * Appends and returns a new empty "BILLPUBINFO" element
     */
    public net.ofx.types.x2003.x04.BillPubInfo addNewBILLPUBINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            net.ofx.types.x2003.x04.BillPubInfo target = null;
            target = (net.ofx.types.x2003.x04.BillPubInfo)get_store().add_element_user(BILLPUBINFO$22);
            return target;
        }
    }
    
    /**
     * Unsets the "BILLPUBINFO" element
     */
    public void unsetBILLPUBINFO()
    {
        synchronized (monitor())
        {
            check_orphaned();
            get_store().remove_element(BILLPUBINFO$22, 0);
        }
    }
}
